<?php
class Visita_modelo extends CI_Model {
	
	var $nombreVisita='';
	var $fecha = '';
	var $horaInicio = '';
	var $duracion = '';
	var $trabajos = '';
	var $observaciones = '';
	var $idUsuario='';
	var $idObra='';
	var $finalizada='';

	
	
	
function __construct(){
parent::__construct();

 

}

function crear_visita($dia,$mes,$anyo,$horaI,$minutoI,$idObra){
	
	$user_id = $this->session->userdata('id');
	
	$this->nombreVisita='';
	$this->fecha = $dia.'-'.$mes.'-'.$anyo;
	$this->horaInicio = $horaI.':'.$minutoI;
	$this->idUsuario=$user_id;
	$this->idObra=$idObra;
	$this->finalizada=0;
	
	
	
	$this->db->insert('visita',$this);
	return $this->db->insert_id(); 
	
		
	
	
	
}


function getObraVisita($idVisita){
	$query = $this->db->query('SELECT idObra FROM visita where idVisita='.$idVisita.'');
	return $query->result();
	
	
	
}

function actualizar_visita($idVisita){
	
	  $this->load->model('Visita_modelo');
                $this->load->model('Obra_modelo');
        

		$idObra=$this->Visita_modelo->getObraVisita($idVisita);
	
	
	$user_id = $this->session->userdata('id');
		
	
	$dia=$this->input->post('dia');
	
	
	
	$mes=$this->input->post('mes');
	$anyo=$this->input->post('anyo');
	
	$horaI=$this->input->post('horaI');
	$minutoI=$this->input->post('minutoI');
	$horaDur=$this->input->post('horaDur');
	$minutoDur=$this->input->post('minutoDur');
	
	
	$this->nombreVisita= $this->input->post('visita');
	$this->fecha = $dia.'-'.$mes.'-'.$anyo;
	$this->horaInicio = $horaI.':'.$minutoI;
	$this->duracion = $horaDur.':'.$minutoDur;
	$this->trabajos = $this->input->post('trabajos');
	$this->observaciones = $this->input->post('observaciones');
	$this->idUsuario=$user_id;
	foreach( $idObra as $id){
			$this->idObra=$id->idObra;
		
	}
	
		
    $this->db->where('idVisita', $idVisita);
	$this->db->update('visita',$this);
	
	if($this->maquinas_especiales($idVisita)==null){
	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nueva,'tipoE'=>'maquina');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
	
	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('nombreMaqE'=>$nueva);
		    
		   		
		$this->db->update('maquinasespeciales',$data, array('idVisita' => $idVisita,'tipoE'=>'maquina'));
		}
	}

	
	if($this->equipos_especiales($idVisita)==null){
		
	$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoE,'tipoE'=>'equipo');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
		
			
$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('nombreMaqE'=>$nuevoE);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'equipo'));
		}
		
	}
	
		
if($this->medios_especiales($idVisita)==null){
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoM,'tipoE'=>'medio');
		$this->db->insert('maquinasespeciales',$data);
		}
	
	
}else{
	
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('nombreMaqE'=>$nuevoM);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'medio'));
		}
	
	
	
	
}
		
		

	
}



function actualizar_visita2($idVisita){

	 $this->load->model('Visita_modelo');
                $this->load->model('Obra_modelo');
        

		$idObra=$this->Visita_modelo->getObraVisita($idVisita);
	
	$user_id = $this->session->userdata('id');
		
	
	$dia=$this->input->post('dia');
	
	
	
	$mes=$this->input->post('mes');
	$anyo=$this->input->post('anyo');
	
	$horaI=$this->input->post('horaI');
	$minutoI=$this->input->post('minutoI');
	$horaDur=$this->input->post('horaDur');
	$minutoDur=$this->input->post('minutoDur');
	
	
	$this->nombreVisita= $this->input->post('visita');
	$this->fecha = $dia.'-'.$mes.'-'.$anyo;
	$this->horaInicio = $horaI.':'.$minutoI;
	$this->duracion = $horaDur.':'.$minutoDur;
	$this->trabajos = $this->input->post('trabajos');
	$this->observaciones = $this->input->post('observaciones');
	$this->idUsuario=$user_id;
foreach( $idObra as $id){
			$this->idObra=$id->idObra;
		
	}
	$this->finalizada=1;
	
		
    $this->db->where('idVisita', $idVisita);
	$this->db->update('visita',$this);

if($this->maquinas_especiales($idVisita)==null){
	
	
	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nueva,'tipoE'=>'maquina');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
	
	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('nombreMaqE'=>$nueva);
		    
		   		
		$this->db->update('maquinasespeciales',$data, array('idVisita' => $idVisita,'tipoE'=>'maquina'));
		}
	}

	
	if($this->equipos_especiales($idVisita)==null){
		
	$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoE,'tipoE'=>'equipo');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
		
			
$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('nombreMaqE'=>$nuevoE);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'equipo'));
		}
		
	}
	
		
if($this->medios_especiales($idVisita)==null){
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoM,'tipoE'=>'medio');
		$this->db->insert('maquinasespeciales',$data);
		}
	
	
}else{
	
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('nombreMaqE'=>$nuevoM);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'medio'));
		}
	
	
}
}



function actualizar_modificar($idVisita){
	
	$trabajos=$this->input->post('trabajos');
	
	$observaciones = $this->input->post('observaciones');
	
	
	$data = array(
'trabajos' => $trabajos,
'observaciones' => $observaciones);
$this->db->where('idVisita', $idVisita);
$this->db->update('visita', $data);



if($this->maquinas_especiales($idVisita)==null){
	

	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nueva,'tipoE'=>'maquina');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
	
	$nueva=$this->input->post('nueva1');

		if($nueva!=null){
		$data=array('nombreMaqE'=>$nueva);
		    
		   		
		$this->db->update('maquinasespeciales',$data, array('idVisita' => $idVisita,'tipoE'=>'maquina'));
		}
	}

	
	if($this->equipos_especiales($idVisita)==null){
		
	$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoE,'tipoE'=>'equipo');
		$this->db->insert('maquinasespeciales',$data);
		}
		
	}else{
		
			
$nuevoE=$this->input->post('nuevoE1');
		if($nuevoE!=null){
		$data=array('nombreMaqE'=>$nuevoE);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'equipo'));
		}
		
	}
	
		
if($this->medios_especiales($idVisita)==null){
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('idVisita'=>$idVisita,'nombreMaqE'=>$nuevoM,'tipoE'=>'medio');
		$this->db->insert('maquinasespeciales',$data);
		}
	
	
}else{
	
	
 $nuevoM=$this->input->post('nuevoM1');
		if($nuevoM!=null){
		$data=array('nombreMaqE'=>$nuevoM);
		
		$this->db->update('maquinasespeciales',$data,array('idVisita' => $idVisita,'tipoE'=>'medio'));
		}
	
	
}

}


function listado(){
		
		$query = $this->db->query('(SELECT v.idVisita, v.fecha,v.nombreVisita,v.idUsuario,u.nombre,count(distinct d.idDeficiencia) as contDef,count(m.idMedida) as contMed
FROM medidacorrectora m RIGHT OUTER JOIN deficiencia d ON m.idDeficiencia = d.idDeficiencia RIGHT  OUTER JOIN visita v ON d.idVisita = v.idVisita INNER JOIN usuario u ON v.idUsuario = u.idUsuario
GROUP BY v.idVisita ORDER BY v.fecha DESC) ORDER BY idVisita DESC'); 
	return $query->result(); 
	
}

function listado_obra($idObra){
		
		$query = $this->db->query('(SELECT v.idVisita, v.fecha,v.nombreVisita,v.idUsuario,u.nombre,count(distinct d.idDeficiencia) as contDef,count(m.idMedida) as contMed
FROM medidacorrectora m RIGHT OUTER JOIN deficiencia d ON m.idDeficiencia = d.idDeficiencia RIGHT  OUTER JOIN visita v ON d.idVisita = v.idVisita  INNER JOIN usuario u ON v.idUsuario = u.idUsuario and v.idObra='.$idObra.'
GROUP BY v.idVisita ORDER BY v.fecha DESC) ORDER BY idVisita DESC'); 
	return $query->result(); 
	
}




function datos_visita($idVisita){
	$query = $this->db->query('SELECT * FROM visita,usuario where usuario.idUsuario=visita.idUsuario and visita.idVisita='.$idVisita.'');
	return $query->result();
}

function listado_porUsuario($idTec){
	 	 $query = $this->db->where('idUsuario',$idTec);
        $query = $this->db->get('visita');
        return $query->result(); 
	
}


function listado_visitaParte($idVisita){
	$query = $this->db->query('SELECT * FROM visita,usuario,obra where visita.idUsuario=usuario.idUsuario and visita.idVisita='.$idVisita.' and obra.idObra=visita.idObra');
	return $query->result();
	
	
}


function listado_visitaInforme($fecha,$idObra){
	
		
	$query = $this->db->query('SELECT * FROM visita,usuario where visita.idUsuario=usuario.idUsuario and visita.fecha=\''.$fecha.'\' and visita.idObra='.$idObra.' order by horaInicio');
	return $query->result();
	
	
}

function listado_def_informe($fecha,$idObra){
	
	$query = $this->db->query('SELECT * FROM visita,usuario,deficiencia,probcon,descripciondef where visita.idUsuario=usuario.idUsuario and visita.fecha=\''.$fecha.'\' and visita.idObra='.$idObra.' and deficiencia.idVisita=visita.idVisita and defProb=idProb and defCons=idCon and idDescripcion=descripcionDef order by horaInicio');
	return $query->result();
	
	
}



function fotos_visita($idVisita){
		$query = $this->db->query('SELECT * FROM deficiencia,uploads  where uploads.idDef=deficiencia.idDeficiencia and deficiencia.idVisita='.$idVisita.'');
	return $query->result();
	
}



function finalizarVisita($idVisita){
	
	
	
	$query=$this->db->query('UPDATE visita SET  finalizada=1 WHERE idVisita='.$idVisita.'');
	
	
	
}

function actualizar_finalizados(){
	$sinfin=$this->listado_sinfin();
	
	foreach($sinfin as $item){
		$this->listado_defsinfin();
		
		$this->db->where('idVisita', $item->idVisita);
	$this->db->delete('deficiencia');
	
	$this->db->where('idVisita', $item->idVisita);
	$this->db->delete('maquinariavisita');
	
	$this->db->where('idVisita', $item->idVisita);
	$this->db->delete('historico');
	
	$this->db->query('UPDATE obra,visita SET numVisitas=numVisitas-1 where visita.idObra=obra.idObra ');
	
			
		
	}
	
	
	$this->db->where('finalizada', 0);
	$this->db->delete('visita');
	
}



function listado_sinfin(){
	$query=$this->db->query('SELECT idVisita from visita where finalizada=0');
	return $query->result();
}

function listado_defsinfin(){
	
	$query=$this->db->query('Select idDeficiencia from deficiencia,visita where visita.idVisita=deficiencia.idVisita and finalizada=0');
		$defs= $query->result();
		
		foreach($defs as $item){
			
		$this->db->where('idDeficiencia', $item->idDeficiencia);
	$this->db->delete('medidacorrectora');
	
	$query=$this->db->query('Select path from uploads where idDef='.$item->idDeficiencia.'');
		$paths= $query->result();
		foreach($paths as $item2){
			unlink('uploads/'.$item2->path.'');
		}
	
	$this->db->where('idDef', $item->idDeficiencia);
	$this->db->delete('uploads');
	
	
			
		}
}

function trabajos($idVisita){
	
		$query=$this->db->query('Select trabajos from visita where idVisita='.$idVisita.'');
	
	return $query->result(); 
	
}


function observaciones($idVisita){
	
		$query=$this->db->query('Select observaciones from visita where idVisita='.$idVisita.'');
	
	return $query->result(); 
	
}

function duracion($idVisita){
	
	$query=$this->db->query('Select duracion from visita where idVisita='.$idVisita.'');
	
	return $query->result(); 
	
}

function maquinas_especiales($idVisita){
	
	$query=$this->db->query('Select * from maquinasespeciales where idVisita='.$idVisita.' and tipoE=\'maquina\'');
	
	return $query->result(); 
	
	
}

function equipos_especiales($idVisita){
	
	$query=$this->db->query('Select * from maquinasespeciales where idVisita='.$idVisita.' and tipoE=\'equipo\'');
	
	return $query->result(); 
	
	
}


function medios_especiales($idVisita){
	
	$query=$this->db->query('Select * from maquinasespeciales where idVisita='.$idVisita.' and tipoE=\'medio\'');
	
	return $query->result(); 
	
	
}






	
}